home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 1122 / 1122.xpi / chrome / tabmixplus.jar / content / tabmixplus / extensions / wizzrss.js < prev    next >
Text File  |  2009-09-02  |  3KB  |  114 lines

  1. // code by onemen
  2.  
  3. // Look for RSS/Atom News Reader
  4. function TMP_LookForRSS()
  5. {
  6.    if ("gotoLink" in window)
  7.       TMP_wizzrss.init();
  8.  
  9.    if ("openNewsfox" in window)
  10.       TMP_Newsfox.init();
  11.  
  12.    if ("RSSTICKER" in window)
  13.       TMP_RSSTICKER.init();
  14. }
  15.  
  16. var TMP_RSSTICKER = {
  17.    init : function ()
  18.    {
  19.      eval("RSSTICKER.writeFeed ="+RSSTICKER.writeFeed.toString().replace(
  20.        'tbb.setAttribute("onclick"',
  21.        'tbb.setAttribute("onclick", "this.onClick(event);");\
  22.         tbb.setAttribute("_onclick"'
  23.      ).replace(
  24.        'tbb.onContextOpen =',
  25.        'tbb.onContextOpen = TMP_RSSTICKER.onContextOpen; \
  26.         tbb.onClick = TMP_RSSTICKER.onClick; \
  27.         tbb._onContextOpen ='
  28.      ));
  29.    },
  30.  
  31.    onClick : function (event) {
  32.      if (event.ctrlKey) {
  33.        this.markAsRead(true);
  34.      }
  35.      else if ((this.parent.alwaysOpenInNewTab && (event.which == 1)) || (event.which == 2)) {
  36.        this.onContextOpen("tab");
  37.      }
  38.      else if (event.which == 1) {
  39.        this.onContextOpen();
  40.      }
  41.    },
  42.  
  43.    onContextOpen : function (target) {
  44.      if (!target) {
  45.        if (TMP_whereToOpen(null).lock)
  46.          this.parent.browser.openInNewTab(this.href);
  47.        else
  48.          window._content.document.location.href = this.href;
  49.      }
  50.      else if (target == "window") {
  51.        if (gSingleWindowMode)
  52.          this.parent.browser.openInNewTab(this.href);
  53.        else
  54.          window.open(this.href);
  55.      }
  56.      else if (target == "tab") {
  57.        this.parent.browser.openInNewTab(this.href);
  58.      }
  59.  
  60.      this.markAsRead();
  61.    }
  62. }
  63.  
  64. // prevent Wizz RSS from load pages in locked tabs
  65. var TMP_wizzrss =
  66. {
  67.    init : function ()
  68.    {
  69.       var codeToReplace = /getContentBrowser\(\).loadURI|contentBrowser.loadURI/;
  70.       const newCode = "TMP_wizzrss.openURI";
  71.       var _functions = ["addFeedbase","validate","gohome","tryagain","promptStuff","promptStuff",
  72.                         "doSearch","viewLog","renderItem","playEnc","renderAllEnc","playAllEnc",
  73.                         "gotoLink","gotoLink","itemLinkClick","itemLinkClick","itemListClick"];
  74.  
  75.       _functions.forEach(
  76.          function(_function) {
  77.             if (_function in window)
  78.                eval("window." + _function + " ="+ window[_function].toString()
  79.                   .replace(codeToReplace,newCode));
  80.          }
  81.       );
  82.    },
  83.  
  84.    openURI : function (uri)
  85.    {
  86.       var w = Components.classes['@mozilla.org/appshell/window-mediator;1']
  87.                                  .getService(Components.interfaces.nsIWindowMediator)
  88.                                  .getMostRecentWindow("navigator:browser");
  89.       // we get here from other extension use getBrowser() for Firefox 3.0
  90.       var tabBrowser = w.getBrowser();
  91.  
  92.       var openNewTab = w.TMP_whereToOpen(true).lock;
  93.       if (openNewTab) {
  94.          var newTab = tabBrowser.addTab(uri);
  95.          var theBGPref = !readPref("WizzRSSFocusTab", false, 2);
  96.          tabBrowser.TMP_selectNewForegroundTab(newTab, theBGPref);
  97.       }
  98.       else
  99.          tabBrowser.loadURI(uri);
  100.    }
  101. }
  102.  
  103. // prevent Newsfox from load pages in locked tabs
  104. var TMP_Newsfox =
  105. {
  106.    init : function ()
  107.    {
  108.       eval("openNewsfox ="+openNewsfox.toString().replace(
  109.          'if (newTab) {',
  110.          'newTab = newTab || TMP_whereToOpen(null).lock; \ $&'
  111.       ));
  112.    }
  113. }
  114.